![]() |
Comp3to1 |
||||
Header: | Sound.h | Carbon status: | Unsupported | |
Compresses sound data at a ratio of 3:1.
void Comp3to1 ( const void *inBuffer, void *outBuffer, UInt32 cnt, StateBlockPtr inState, StateBlockPtr outState, UInt32 numChannels, UInt32 whichChannel );
A pointer to a buffer of samples to be compressed.
A pointer to a buffer where the samples are to be written.
The number of samples to compress.
A pointer to a 128-byte buffer from which the input state of the algorithm is read, or NULL. To initialize the algorithm, this buffer should be filled with zeros.
A pointer to a 128-byte buffer to which the output state of the algorithm is written, or NULL. This buffer might be the same as that specified by the inState parameter.
The number of channels in the buffer pointed to by the inBuffer parameter.
The channel to compress, when numChannels is greater than 1. This parameter must be in the range of 1 to numChannels.
The Comp3to1 function compresses cnt samples of sound stored in the buffer specified by inBuffer and places the result in the buffer specified by outBuffer, which must be at least cnt/3 bytes in size. The original samples can be monophonic or include multiple channels of sound, but they must be in 8-bit offset binary format. Also, if numChannels is greater than 1, then the noncompressed sound must be stored in interleaved format on a sample basis.
If you compress polyphonic sound, you retain only one channel of sound, which you specify in the whichChannel parameter. Thus, if you use the Comp3to1 function to compress three-channel sound, you will have effectively compressed the sound to one-ninth its original size in bytes. To retain multiple channels of sound after compression, you must call the Comp3to1 function for each channel to be compressed and then interleave the compressed sound data on a packet basis.
The Comp3to1 function compresses every 48 bytes of sound data to exactly 16 bytes of compressed sound data and compresses remaining bytes to no more than one-third the original size.
You can use the inState and outState parameters to allow the MACE compression functions to preserve information about algorithms across calls. Alternatively, you may pass NULL state buffers and let the Sound Manager allocate the buffers internally.
Because the Comp3to1 function might allocate and dispose of memory, you should not call it at interrupt time.
Not supported in Carbon. Not available in Carbon.
You should use the sound converter routines instead.
© 2000 Apple Computer, Inc. (Last Updated 6/30/2000)